package com.example.roleplay.service.tts;

import reactor.core.publisher.Flux;

/**
 * TTS（文本转语音）客户端接口
 */
public interface TTSClient {

    /**
     * 文字转语音（同步）
     * 
     * @param text 要转换的文本
     * @param voice 声音ID
     * @param language 语言代码
     * @return 音频数据（MP3格式）
     */
    byte[] synthesize(String text, String voice, String language);

    /**
     * 文字转语音（流式）
     * 
     * @param text 要转换的文本
     * @param voice 声音ID  
     * @param language 语言代码
     * @return 音频数据流
     */
    Flux<byte[]> synthesizeStream(String text, String voice, String language);

    /**
     * 检查TTS服务是否可用
     * 
     * @return 是否可用
     */
    boolean isHealthy();

    /**
     * 获取支持的声音列表
     * 
     * @return 声音ID列表
     */
    String[] getSupportedVoices();

    /**
     * 获取支持的语言
     * 
     * @return 支持的语言代码列表
     */
    String[] getSupportedLanguages();

    /**
     * 获取默认声音
     * 
     * @param language 语言代码
     * @return 默认声音ID
     */
    String getDefaultVoice(String language);
}